package com.itheima.xmy.Demo.Demo01;

import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;

/*1. 请编写main()方法：
​       1). 使用反射获取Student的Class对象。
​       2). 获取 “公有、全参构造方法”；
​       3). 调用 “公有、全参构造方法”传入：“柳岩”,17两个参数。
​       4). 反射获取show()方法
​       5). 调用show()方法*/
public class StudentTest {
    public static void main(String[] args) throws NoSuchMethodException, InvocationTargetException, InstantiationException, IllegalAccessException {
        //​       1). 使用反射获取Student的Class对象。
        Class<Student> studentClass = Student.class;

        //​       2). 获取 “公有、全参构造方法”；
        Constructor<Student> student = studentClass.getDeclaredConstructor(String.class, int.class);
        //​       3). 调用 “公有、全参构造方法”传入：“柳岩”,17两个参数。

        Student o = student.newInstance("柳岩", 17);

        //​       4). 反射获取show()方法
        Method show = studentClass.getDeclaredMethod("show");

        //​       5). 调用show()方法*/
        show.invoke(o);
    }
}
